package clases
{
	import flash.events.Event;
	import flash.filesystem.File;
	
	import mx.collections.ArrayCollection;

	public class Configuracion
	{
		public function Configuracion()
		{
		}
		
		private var archivoConfiguracion:File = null;
		
		private var XMLConfiguracion:XML;
		
		private var _onLoad:Function;
		
		public function leerConfiguracion():void{
			//Alert.show(File.applicationDirectory.nativePath + "\\data\\configuracion.xml");
			archivoConfiguracion = new File(File.applicationDirectory.nativePath + "\\data\\configuracion.xml");
			
			archivoConfiguracion.addEventListener(Event.COMPLETE, cargoConfiguracion);
			archivoConfiguracion.load();
			//Alert.show(ObjectUtil.toString(fil));
			
			//Alert.show(ObjectUtil.toString(fil.data));
			//XMLConfiguracion = new XML(e.target.data);
		}
		
		private function cargoConfiguracion(event:Event):void{
			//Alert.show(ObjectUtil.toString(archivoConfiguracion.data));
			XMLConfiguracion = new XML(archivoConfiguracion.data);
			_onLoad.call();
			//Alert.show(XMLConfiguracion.toXMLString());
		}
		
		public function get URLWebServices():String{
			try{return String(XMLConfiguracion.webServices);}catch(err:Error){}
			return "";
		}
		
		public function get carpetaVideos():String{
			try{return String(XMLConfiguracion.carpetaVideos);}catch(err:Error){}
			return "";
		}
		
		public function get SegActualizarWS():int{
			try{return int(XMLConfiguracion.segActualizarWS);}catch(err:Error){}
			return 120;
		}
		
		public function get tipoDatosGrafico():String{
			try{return String(XMLConfiguracion.tipoDatosGrafico);}catch(err:Error){}
			return "promedio";
		}
		
		public function get tipoDatosTabla():String{
			try{return String(XMLConfiguracion.tipoDatosTabla);}catch(err:Error){}
			return "promedio";
		}
		
		
		public function get vecesRepetirMensaje():int{
			try{return int(XMLConfiguracion.vecesRepetirMensaje);}catch(err:Error){}
			return 0;
		}
		
		public function get ultimasLecturas():int{
			try{return (int(XMLConfiguracion.ultimasLecturas) >= 1) ? int(XMLConfiguracion.ultimasLecturas): 5;}catch(err:Error){}
			return 1;
		}
		
		public function get promedioFaja():int{
			try{return (int(XMLConfiguracion.ultimasLecturas) >= 0) ? int(XMLConfiguracion.promedioFaja): 0;}catch(err:Error){}
			return 1;
		}
		
		public function get promedioCourier():int{
			try{return (int(XMLConfiguracion.ultimasLecturas) >= 0) ? int(XMLConfiguracion.promedioCourier): 0;}catch(err:Error){}
			return 1;
		}
		
		
		public function get lecturasGraficoFaja():int{
			try{return (int(XMLConfiguracion.ultimasLecturas) >= 0) ? int(XMLConfiguracion.lecturasGraficoFaja): 0;}catch(err:Error){}
			return 1;
		}
		
		public function get lecturasGraficoCourier():int{
			try{return (int(XMLConfiguracion.ultimasLecturas) >= 0) ? int(XMLConfiguracion.lecturasGraficoCourier): 0;}catch(err:Error){}
			return 1;
		}
		
		public function get msgPixelsXSeg():int{
			try{return (int(XMLConfiguracion.msgPixelsXSeg) >= 1) ? int(XMLConfiguracion.msgPixelsXSeg): 15;}catch(err:Error){}
			return 15;
		}
		
		public function get acPixelsXSeg():int{
			try{return (int(XMLConfiguracion.acPixelsXSeg) >= 1) ? int(XMLConfiguracion.acPixelsXSeg): 15;}catch(err:Error){}
			return 15;
		}
		
		public function get duracionVista():int{
			try{return int(XMLConfiguracion.duracionVista);}catch(err:Error){}
			return 0;
		}
		
		public function get duracionVistaMetal():int{
			try{return int(XMLConfiguracion.duracionVistaMetal);}catch(err:Error){}
			return 0;
		}
		
		public function get colorFondoMensaje():String{
			try{return "#" + String(XMLConfiguracion.backgroundColor);}catch(err:Error){}
			return "#666666";
		}
		
		public function get colorFondoVistas():String{
			try{return String(XMLConfiguracion.backgroundColor);}catch(err:Error){}
			return "0x666666";
		}
		
		public function get colorMensaje():String{
			try{return String(XMLConfiguracion.colorMensaje);}catch(err:Error){}
			return "0xFFFFFF";
		}
		
		public function get fontSizeMensaje():String{
			try{return String(XMLConfiguracion.fontSizeMensaje);}catch(err:Error){}
			return "38";
		}
		
		public function get heightFootLecturas():Number{
			try{return Number(XMLConfiguracion.heightFootLecturas);}catch(err:Error){}
			return 140;
		}
		
		public function get FSTLDatosTabla():String{
			try{return String(XMLConfiguracion.fontSizesTablaLecturas.datosTabla);}catch(err:Error){}
			return "20";
		}
		
		public function get FSTLValorCambio():String{
			try{return String(XMLConfiguracion.fontSizesTablaLecturas.valorCambioTabla);}catch(err:Error){}
			return "10";
		}
		
		public function get FSTLTipo():String{
			try{return String(XMLConfiguracion.fontSizesTablaLecturas.tipo);}catch(err:Error){}
			return "20";
		}
		
		public function get FSTLLeyendas():String{
			try{return String(XMLConfiguracion.fontSizesTablaLecturas.leyendas);}catch(err:Error){}
			return "20";
		}
		
		public function get FSTLTitulos():String{
			try{return String(XMLConfiguracion.fontSizesTablaLecturas.tituloMetales);}catch(err:Error){}
			return "20";
		}
		
		public function get FSTLPromedios():String{
			try{return String(XMLConfiguracion.fontSizesTablaLecturas.promedios);}catch(err:Error){}
			return "20";
		}
		
		public function get FSTLTextPromedios():String{
			try{return String(XMLConfiguracion.fontSizesTablaLecturas.textPromedio);}catch(err:Error){}
			return "20";
		}
		
		public function get FSLVUltimaLectura():int{
			try{return int(XMLConfiguracion.fontSizesLecturasVideo.ultimaLectura);}catch(err:Error){}
			return 42;
		}
		
		public function get FSLVTipo():int{
			try{return int(XMLConfiguracion.fontSizesLecturasVideo.tipo);}catch(err:Error){}
			return 26;
		}
		
		public function get FSLVLecturasAnteriores():int{
			try{return int(XMLConfiguracion.fontSizesLecturasVideo.lecturasAnteriores);}catch(err:Error){}
			return 23;
		}
		
		public function get FSLVFecha():int{
			try{return int(XMLConfiguracion.fontSizesLecturasVideo.fecha);}catch(err:Error){}
			return 22;
		}
		
		
		public function get FSVGTipo():String{
			try{return String(XMLConfiguracion.fontSizesVistaGraficos.tipo);}catch(err:Error){}
			return "32";
		}
		
		public function get FSVGLeyendasMental():String{
			try{return String(XMLConfiguracion.fontSizesVistaGraficos.leyendaMetal);}catch(err:Error){}
			return "15";
		}
		
		public function get FSVGLabelHora():int{
			try{return int(XMLConfiguracion.fontSizesVistaGraficos.horaLectura);}catch(err:Error){}
			return 12;
		}
		
		public function get AnchoCajaTitulo():int{
			try{return int(XMLConfiguracion.anchoCajaTitulo);}catch(err:Error){}
			return 22;
		}
		
		public function get FSTitulo():int{
			try{return int(XMLConfiguracion.fontSizesTablaLecturas.titulo);}catch(err:Error){}
			return 22;
		}
		
		public function get FSTHFD():int{
			try{return int(XMLConfiguracion.fontSizesTablaLecturas.tituloHFD);}catch(err:Error){}
			return 22;
		}
		
		public function get FSTHFM():int{
			try{return int(XMLConfiguracion.fontSizesTablaLecturas.tituloHFM);}catch(err:Error){}
			return 22;
		}
		
		public function get FSTHFA():int{
			try{return int(XMLConfiguracion.fontSizesTablaLecturas.tituloHFA);}catch(err:Error){}
			return 22;
		}
		
		public function get FSTTM():int{
			try{return int(XMLConfiguracion.fontSizesTablaLecturas.tituloTM);}catch(err:Error){}
			return 22;
		}
		
		public function get FSTTA():int{
			try{return int(XMLConfiguracion.fontSizesTablaLecturas.tituloTA);}catch(err:Error){}
			return 22;
		}
		
		public function get FSTAc():int{
			try{return int(XMLConfiguracion.fontSizesTablaLecturas.tituloAc);}catch(err:Error){}
			return 22;
		}
		
		public function get FSTCa():int{
			try{return int(XMLConfiguracion.fontSizesTablaLecturas.tituloCa);}catch(err:Error){}
			return 22;
		}
		
		public function get FSDatosTabla():int{
			try{return int(XMLConfiguracion.fontSizesTablaLecturas.datosTabla);}catch(err:Error){}
			return 22;
		}
		
		public function get FSTextoInformacion():int{
			try{return int(XMLConfiguracion.fontSizesTablaLecturas.textoInformacion);}catch(err:Error){}
			return 22;
		}
		
		public function get FSGTitulo():int{
			try{return int(XMLConfiguracion.fontSizesGraficos.titulo);}catch(err:Error){}
			return 22;
		}
		
		public function get FSGEtiqueta():int{
			try{return int(XMLConfiguracion.fontSizesGraficos.etiqueta);}catch(err:Error){}
			return 22;
		}
		
		public function get ColorTitulo():String{
			try{return String(XMLConfiguracion.colorTablaLecturas.titulo);}catch(err:Error){}
			return "0xFFFFFF";
		}
		
		
		public function get ColorDatosTabla():String{
			try{return String(XMLConfiguracion.colorTablaLecturas.datosTabla);}catch(err:Error){}
			return "0xFFFFFF";
		}
		
		public function get ColorBordeTabla():String{
			try{return String(XMLConfiguracion.colorTablaLecturas.bordeTabla);}catch(err:Error){}
			return "0xFFFFFF";
		}
		
		public function get ColorFondoCabeceraTabla():String{
			try{return String(XMLConfiguracion.colorTablaLecturas.fondoCabeceraTabla);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorTextoInformacion():String{
			try{return String(XMLConfiguracion.colorTablaLecturas.textoInformacion);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorFondoTabla():String{
			try{return String(XMLConfiguracion.colorTablaLecturas.fondoTabla);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorFondoTitulo():String{
			try{return String(XMLConfiguracion.colorTablaLecturas.fondoTitulo);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorFondoInformacion():String{
			try{return String(XMLConfiguracion.colorTablaLecturas.fondoInformacion);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorGraficoTitulo():String{
			try{return String(XMLConfiguracion.colorGraficos.titulo);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorGraficoEtiqueta():String{
			try{return String(XMLConfiguracion.colorGraficos.etiquetas);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorGraficoLevantado():String{
			try{return String(XMLConfiguracion.colorGraficos.levantado);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorGraficoReportado():String{
			try{return String(XMLConfiguracion.colorGraficos.reportado);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorGraficoPendiente():String{
			try{return String(XMLConfiguracion.colorGraficos.pendiente);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorGraficoLineaProgramado():String{
			try{return String(XMLConfiguracion.colorGraficos.lineaProgramado);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorGraficoCirculoProgramado():String{
			try{return String(XMLConfiguracion.colorGraficos.circuloProgramado);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorGraficoFondo():String{
			try{return String(XMLConfiguracion.colorGraficos.fondoContorno);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get ColorGraficoFondoDiagrama():String{
			try{return String(XMLConfiguracion.colorGraficos.fondoGrafico);}catch(err:Error){}
			return "0x333333";
		}
		
		public function get vecesRepetirInfo():int{
			try{return int(XMLConfiguracion.vecesRepetirInfo);}catch(err:Error){}
			return 3;
		}	
		
		public function get formatosVideos():ArrayCollection{
			try{
				var formatos:ArrayCollection = new ArrayCollection();
				var extensiones:XMLList = XMLList(XMLConfiguracion.formatosVideos.formato);
				for each(var xmlFormato:XML in extensiones){
					formatos.addItem(String(xmlFormato.nombre));
				}
				return formatos;
			}catch(err:Error){}
			return new ArrayCollection();
		}
		
		public function get debugMode():Boolean{
			try{
				if(String(XMLConfiguracion.debugMode) == "true"){
					return true;
				}else{
					return false;
				}
			}catch(err:Error){}
			return false;
		}

		public function get onLoad():Function
		{
			return _onLoad;
		}

		public function set onLoad(value:Function):void
		{
			_onLoad = value;
		}

	}
}